Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RC] 0.9.2: Docker support, minor fixes, and update coin assets/icons #162

Open
wants to merge 22 commits into
base: master
Choose a base branch
from

Conversation

CharlVS
Copy link
Member

@CharlVS CharlVS commented Dec 19, 2024

Release 0.9.2 - Docker support, minor fixes, and update coin assets/icons

Overview

This release focuses on establishing Docker support for development and builds, adding new coins, improving platform builds, and fixing volume calculations for orderbooks.

Key Changes

UX Enhancements

  • Added copy support for transaction amounts (@DeckerSU)
  • Better password validation feedback (@mdmohsin7)
  • Improved welcome page layout (@mdmohsin7)

Docker Support

  • Added complete Docker setup for Android builds and development
  • Dockerized release APK build process
  • Added Android CI build containers
  • Build scripts for containerized development setup

Trading Improvements

  • Fixed broken volume calculations in orderbook
  • Added proper support for relative volumes in trades
  • Enhanced handling of minimum trade amounts
  • Fixed volume validation for matched bids

Platform & Build Updates

  • Fixed broken iOS builds broke by recent macOS update.
  • Improved iOS builds with updated CocoaPods (1.15.2) and Bitcode support
  • Added FVM support for Flutter version management
  • Added Ruby version configuration (2.7.5)
  • Updated coin config fetch scripts to support TCP configs

New Coin Support

Added support for several new coins including:

  • New protocol: Arbitrum (ARB)
  • Pepecoin (PEP)
  • First Digital USD (FDUSD)
  • And more...

QA: Suggested tests

  1. Ensure that all functionality for Pepecoin works correctly and that the icon shows
  2. Verify coin icon loading for new and updated coins (e.g. Pepecoin)
  3. Verify Docker builds work correctly
  4. Test minimum volume validation in trades
  5. Check password input validation behaviour
  6. Test relative volume calculations in orderbook
  7. Optional (I've already done this): verify iOS builds with updated configurations

Dev Notes

The APK can be built using sh .docker/build_apk_release.sh. Currently this only works on x86 machines. (i.e. building on an Apple silicon machine will fail)

Misc

Thank you to our first-time contributors for your valuable contributions: @DeckerSU @mdmohsin7

CharlVS and others added 17 commits May 3, 2024 12:19
`coins_config_ssl` delists coins without SSL support whereas `coins_config_tcp` favours SSL but falls back to TCP if not available.
Signed-off-by: Charl (Nitride) <[email protected]>
* update rates url

* Add docker image and devcontainer

Only Linux and WSL on x86 are supported at the moment

* SSL migration (#143)

* Update coins to SSL config

* Rename references to SSL coin config

* Prefer SSL, but fall back to TCP if not available.

`coins_config_ssl` delists coins without SSL support whereas `coins_config_tcp` favours SSL but falls back to TCP if not available.

* Sync latest TCP file from coins repo

* bump target SDK 

https://developer.android.com/google/play/requirements/target-sdk

Signed-off-by: Kadan Stadelmann <[email protected]>

* Bump app build

Signed-off-by: Charl (Nitride) <[email protected]>

---------

Signed-off-by: Kadan Stadelmann <[email protected]>
Signed-off-by: Charl (Nitride) <[email protected]>
Co-authored-by: CharlVS <[email protected]>

* Replace python script with new dart version

Also update dockerfile

* Fix issues with new dart script as when used via CLI

* Revert "Replace python script with new dart version"

This reverts commit 0bde503.

* Change from clone to COPY and fix permission issue

* Add documentation and fix build directory permission issues

* Update devcontainer image and fix permission issues

* Fix devcontainer ndk install error

Write permission denied to `/opt/android-sdk-linux`

* Move changing ownership of android sdk folder to dockerfile

* Replace Flutter archive download with git clone of Flutter repo

Use a build matching the current architecture rather than downloading a prebuilt archive

* Refactor to fetch Defi binaries only from GH releases (#148)

* Refactor to fetch Defi binaries from GH releases

Refactor to fetch Defi binaries from GH releases since they are built in a secure environment instead of the automated CI builds.

* Fix script to use version tag

Fix the script to use a version tag instead of a hash, as GH’s API does not support fetching a release tied to a specific commit. In the future, we can investigate if there’s an alternate way to verify/validate that the release build is indeed built from a given hash so we can change from a tag ref to a hash ref.

* Fix bug in API fetch script

Fix the API binary fetch script

Ravioli ravioli

* Remove the hardcoded platform from the devcontainer image

* Copy over android sdk dockerfile from Cirrus CI

Remove references to 3rd party dockerfiles, allow for local image tagging and simplify code review.
Credit to https://github.com/cirruslabs/docker-images-android/tree/master

* Fix bug in API fetch script

Fix bug in API fetch script where fetching would fail if the android lib folders didn’t already exist.

* Add script to abstract apk release build

* Change devcontainer to docker-compose format

Use local tagged image instead of the 3rd party image

* Revert "Change devcontainer to docker-compose format"

This reverts commit 95ce8bf.

* Add note regarding build limitations and the Python script

* Update fetch coins scripts

* Add komodo-defi-framework build step to apk build image

Also standardise base images to ubuntu:22.04

* Fix kdf branch build argument

* Remove unnecessary copy

Leftover artefact from previous build stage setup

* Combine dockerfiles into `android-dev` for Github codespaces

* Move API build to postAttach event of devcontainer

API was built in image to reduce Codespaces startup time, but ended up increasing the already large image size

* Fix cargo install in devcontainer/Codespaces

* Set the minimum host requirements for Codespaces

4 cores, 16GB RAM and 32GB storage is the minimum requirements for the API to build successfully from source.

---------

Signed-off-by: Kadan Stadelmann <[email protected]>
Signed-off-by: Charl (Nitride) <[email protected]>
Co-authored-by: Charl <[email protected]>
Co-authored-by: smk762 <[email protected]>
Co-authored-by: Kadan Stadelmann <[email protected]>
* allow copy tx amount to clipboard from tx details page

* set executable attributes to *.sh inside docker

* fix flutter version on git checkout, should be from env. variable
* Fix incorrect minimum volume calculation in advanced swap tab

- Add missing minimum and maximum rel coin volume fields
- Simplify minimum volume check on advanced tab order creation
- Fix incorrect minimum volume warning text in initial popup

* Fix error message in the case of insufficient gas fee balance

Base coin minimum volume was being used in place of the rel coin minimum volume to check for the threshold
* Update coin configs and assets

83794c99944ae451d7898a8db78898be7a63de8a

* Sync wallet only coins

* Remove recently added NFT_ coins

NFTs are not supported, so remove the coins for now to avoid showing activateable coins with no icon

* Bump minor version to 0.9.2

---------

Co-authored-by: Charl (Nitride) <[email protected]>
commit 69d98b2
Author: Kadan Stadelmann <[email protected]>
Date:   Mon May 13 12:25:31 2024 +0200

    SSL migration (#143)

    * Update coins to SSL config

    * Rename references to SSL coin config

    * Prefer SSL, but fall back to TCP if not available.

    `coins_config_ssl` delists coins without SSL support whereas `coins_config_tcp` favours SSL but falls back to TCP if not available.

    * Sync latest TCP file from coins repo

    * bump target SDK

    https://developer.android.com/google/play/requirements/target-sdk

    Signed-off-by: Kadan Stadelmann <[email protected]>

    * Bump app build

    Signed-off-by: Charl (Nitride) <[email protected]>

    ---------

    Signed-off-by: Kadan Stadelmann <[email protected]>
    Signed-off-by: Charl (Nitride) <[email protected]>
    Co-authored-by: CharlVS <[email protected]>

commit 6df3044
Merge: b853544 66471b9
Author: Kadan Stadelmann <[email protected]>
Date:   Sat May 4 22:03:41 2024 +0200

    Merge pull request #123 from KomodoPlatform/dev

    [RC] `0.9.1`: Chart & Order Book Fixes + Sync assets

commit b853544
Merge: 68138a3 06947f9
Author: Kadan Stadelmann <[email protected]>
Date:   Wed Jan 24 09:34:50 2024 +0100

    Merge pull request #100 from KomodoPlatform/dev

    sync master

commit 68138a3
Merge: b0eb54a 36c6afd
Author: Kadan Stadelmann <[email protected]>
Date:   Tue Jan 16 12:59:34 2024 +0100

    Merge pull request #93 from KomodoPlatform/dev

    sync master

commit b0eb54a
Merge: 8281a1a b4d69d1
Author: Kadan Stadelmann <[email protected]>
Date:   Wed Dec 20 00:53:07 2023 +0100

    Merge pull request #91 from KomodoPlatform/dev

    `0.9.0` RC - Net ID migration and file sharing fixes

commit 8281a1a
Author: smk762 <[email protected]>
Date:   Mon Oct 30 16:42:47 2023 +0800

    update rates url

commit 40b1eb2
Merge: 0f30d51 e32aff7
Author: Charl <[email protected]>
Date:   Fri Oct 20 18:38:35 2023 +0200

    0.8.0 Release: Merge pull request #78 from KomodoPlatform/dev

    0.8.0 Release (stable): UI revamp, bug fixes and coins update
Co-authored-by: Charl (Nitride) <[email protected]>
@CharlVS CharlVS self-assigned this Dec 19, 2024
@CharlVS CharlVS marked this pull request as ready for review December 19, 2024 17:51
@CharlVS CharlVS marked this pull request as draft December 20, 2024 12:39
Update KDF to latest stable release and sync coin icons + configs
@CharlVS CharlVS marked this pull request as ready for review December 20, 2024 15:06
@CharlVS CharlVS added the QA Ready for QA review label Dec 20, 2024
DeckerSU

This comment was marked as duplicate.

@DeckerSU DeckerSU self-requested a review December 24, 2024 19:56
Copy link

@DeckerSU DeckerSU left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM from a security perspective.

@smk762
Copy link
Contributor

smk762 commented Dec 27, 2024

Docker builds not working in this branch, but will be fixed once #156 is merged.

PEPE native logo is https://github.com/KomodoPlatform/coins/blob/master/icons_original/pepe.png
PEPE-ERC20 and other networks token are using https://github.com/KomodoPlatform/coins/blob/master/icons_original/pep.png

I'm unsure if this is intended?

Testing otherwise successful.

takenagain and others added 2 commits January 23, 2025 13:40
* hide dex tab in wallet only mode

* add debug mode test assets dialog

* bump coins config to 8a37a6c

with "NFT_*" coins removed

* move debug mode dialog to CoinsPage

fix issue with dialog pre-empting page load and causing the app to lock
* fix dockerfile lint warnings

* update rust version to match KDF main branch

* rename lib from mm2 to kdf

* Rename and update rust version in devcontainer files

* Fix missing user and permission issues

* refactor: move codespaces dockerfile and script to `.devcontainer`

* Rename `kdf` to `mm2` to match the existing project setup

* Fix permissions issues when building with docker or podman

* update libmm2 -> libkdf

* formatting

* add docker build script flags

---------

Co-authored-by: smk762 <[email protected]>
Co-authored-by: Charl (Nitride) <[email protected]>
Copy link
Contributor

@smk762 smk762 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Docker builds are now functional. I've updated https://github.com/KomodoPlatform/komodo-wallet-mobile/wiki/Project-Setup#build-with-docker to include the docker build steps.
  • PEPE icons present, though still different for tokens as mentioned in previous comment.
  • Confirmed the DEX view is not present.
  • swiping right on a funded coin still show the "SWAP" option from portfolio. Clicking on it links to the orderbook. IMO this button should not be visible.
  • Orderbook is still present and functional. Seems incongruent with the DEX functionality being removed. IMO, orderbook should also be hidden.

@takenagain
Copy link
Collaborator

  • PEPE icons present, though still different for tokens as mentioned in previous comment.

@smk762 The current icon resolver function splits the coin field by the dash "-", so PEPE-BEP20 resolves to pepe.png and PEP to pep.png. This issue is also present on the current web release (similar logic is used to resolve the icon name).

Is there another field or approach that should be used? We could modify the icon paths in this repository, but on the web release most assets are downloaded from the GitHub CDN at runtime, so the issue won't be resolved there.

@cipig
Copy link
Member

cipig commented Jan 28, 2025

what's the problem with that? it works as it should
PEP and PEPE are 2 different coins,
PEPE is the token https://www.coingecko.com/en/coins/pepe
PEP is the coin https://www.coingecko.com/en/coins/pepecoin-network
they once had similar icons, but now have more distinct ones after old pep.png was replaced with a new one in some PR to coins repoo
you just need to update/use the icons as they are in the coins repo:
PEP: https://github.com/KomodoPlatform/coins/blob/master/icons/pep.png
PEPE: https://github.com/KomodoPlatform/coins/blob/master/icons/pepe.png

@CharlVS
Copy link
Member Author

CharlVS commented Jan 28, 2025

what's the problem with that? it works as it should PEP and PEPE are 2 different coins, PEPE is the token https://www.coingecko.com/en/coins/pepe PEP is the coin https://www.coingecko.com/en/coins/pepecoin-network they once had similar icons, but now have more distinct ones after old pep.png was replaced with a new one in some PR to coins repoo you just need to update/use the icons as they are in the coins repo: PEP: https://github.com/KomodoPlatform/coins/blob/master/icons/pep.png PEPE: https://github.com/KomodoPlatform/coins/blob/master/icons/pepe.png

@smk762 I'm tagging you since the above is addressed to you

@smk762
Copy link
Contributor

smk762 commented Jan 29, 2025

Thanks for the confirmation

Copy link
Collaborator

@AndrewDelaney AndrewDelaney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is an issue with the password validation messages, as well as with the validation itself. I am able to create a password without using any numbers. All other input characters are validated correctly, it just seems to be the numbers that are disregarded. The password validation messages disappear as soon as I meet the uppercase char, lowercase char, special char and length requirements. And then it allows me to proceed in creating the wallet (albeit seems to load into infinity until I close the app down and log in again)

Logged issue: #168

* toggle visibility of swap slide action button and orderbook

* update coin icons

update CDS icon and remove SUM icon (changes from coins repo)

* disable trading related sections on help page
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
QA Ready for QA review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants